from base.base_other_page import BaseObject, BaseOperate
from utils import swipe_element


class DailyPage(BaseObject):
    """
    每日任务
    """

    def __init__(self):
        super().__init__()
        # 每日任务按钮
        self.daily_btn = "daily"
        self.daily_task_name = "势力献礼"
        self.daily_task_name1 = "魔法奥秘"
        self.btn = r"btnColect (1)"
        self.btn_text_name = "Text"

    def find_btn_text_name(self):
        return self.get_daily_btn_name(self.daily_task_name1, self.btn, self.btn_text_name)

    def find_daily_btn(self):
        return self.get_element_by_parent(self.daily_btn)

    # 对应任务的前往和领取按钮（默认第一次前往，完成后自动排第一个前往变领取，元素定位不变）
    def find_go_or_complete_daily_task_btn(self):
        return self.get_daily_by_name(self.daily_task_name1, self.btn)

    # 定位任务名元素
    def find_task_name(self):
        return self.get_element_by_text(self.daily_task_name1)


class DailyOperate(BaseOperate):
    def __init__(self):
        self.dp = DailyPage()

    # 点击每日按钮
    def click_daily_btn(self):
        self.dp.find_daily_btn().click()

    # 点击魔法奥秘后的前往/领取按钮
    def click_go_or_complete_daily_task_btn(self):
        swipe_element(self.dp.find_go_or_complete_daily_task_btn())

    # 获取完成任务结果
    def get_text_complete_btn(self):
        return self.dp.find_btn_text_name().get_text()


class DailyBusiness:
    def __init__(self):
        self.do = DailyOperate()

    def go_daily_page(self):
        # 每日任务页签
        self.do.click_daily_btn()

    def go_to_complete_task(self):
        # 任务前往按钮
        self.do.click_go_or_complete_daily_task_btn()

    # 用于断言是否完成任务
    def get_complete_text(self):
        return self.do.get_text_complete_btn()
